As increasingly more information becomes available online, automated tools for publishing information in a variety of formats, including without limitation standardized formats, become increasing important. One such tool commonly used is the eXtensible Markup Language (“XML”), a standard established by the World Wide Web Consortium (“W3C”) for imposing structure on information. One skilled in the art will appreciate that XML is commonly used as a vehicle to distribute and/or maintain information in a structured format so that it can be used by disparate processes and tools. The XML standard also allows for relatively easy manipulation of data such that the data can be converted relatively easily into different formats for different purposes.
Oftentimes, a plurality of documents need to be formatted using a common format. In such situations, the eXtensible Stylesheet Language (“XSL”), another standard adopted by the W3C, can be used to provide a formatting template for a variety of documents which contain XML data. An extension to the XSL standard is the use of formatting objects (“FO”), which can provide formatting conventions for use within an XSL template for document. While Hypertext Markup Language (“HTML”) provides layout information for information presented on the web, XSL and FO (collectively known as “XSL/FO”) together provide a robust set of tools for page layout in more static forms (such as Portable Document Format (“PDF”) files, printed pages, and the like).
The XSL standard also supports eXtensible Stylesheet Language Transformations (“XSLT”), which provide a hierarchical (tree-oriented) language for transforming instances of XML data into other forms. Merely by way of example, XSLT statements can be used to convert XML to HTML for screen display. Similarly, XSLT can be used to convert XML data to text in other formats such as portable document format (“PDF”) and other XML documents with different schema.
Combining these two related technologies, an XSL/FO file commonly will have XSLT statements surrounded by XSL/FO statements which specify paragraph properties, font properties, color properties, layout properties, (such as tables, nested tables, columns, page sequences, etc.) and/or the like. In this way, the XSL/FO file can provide a robust template to provide formatting structure for various XML information. Hence, an XML transformation engine will apply XML data to the XSL/FO file (often using repeating and/or conditional formatting, perhaps based on the XSLT statements). In this way, the static formatting structure of the XSL/FO can be applied to dynamic XML data (such that a single XSL/FO file can be used to generate a plurality of formatted XML documents, using a plurality of XML datasets).
Generally, this transformation is performed in single step for each XML dataset. For example, an XSL transformation engine can be used to transform an XSL/FO file to an FO-XML file directly. However, since most of the data in a XSL/FO file is formatting data, which generally is static (i.e., does not change based on XML data applied) the transformation is relatively slow because the XSL transformation engine must process all of the static XSL/FO statements along with the dynamic XML data.
In addition, XML documents commonly need to be translated from one language to another. The XML localization interchange file format (“XLIFF”) has been developed to facilitate the translation of XML documents in this manner. The XLIFF file format is used to store localizable data apart from formatting statements, such that the localizable data can be translated and reapplied to the formatting statements of the XML document. In many cases however, it is difficult to tell on an automated basis which data in a particular XSL or XML file is localizable and which data is static (e.g., formatting statements as described above). Hence, while the XLIFF format can facilitate the translation of documents there is no easy way to create the XLIFF file from an XSL/FO file.
Hence, it would be advantageous to provide a tool that could streamline the XSL transformation process. It would be further advantageous if such a tool could automate the process of creating XLIFF files to facilitate the subsequent translation of XSL documents from one language to another language.